﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Disk_Pizza_Admin.dao;
using System.Data.OleDb;

namespace Disk_Pizza_Admin
{
    public partial class frmForncedor : Form
    {
        OleDbConnection conexao;
        OleDbDataAdapter adapter;
        DataSet ds;
        OleDbCommand comando;
        public string tipoOperacao = "n";
        public frmForncedor()
        {
            InitializeComponent();

        }

        private void btnNovoFornecedor_Click(object sender, EventArgs e)
        {


        }
        private void LimparCampos()
        {
            this.txtBairro.Text = "";
            this.txtCNPJ.Text = "";
            this.txtComplemento.Text = "";
            this.txtEmail.Text = "";
            this.txtEndereco.Text = "";
            this.txtMaterial.Text = "";
            this.txtMunicipio.Text = "RIO DE JANEIRO";
            this.txtNome.Text = "";
            this.txtNomeBusca.Text = "";
            this.txtNumero.Text = "";
            this.txtObs.Text = "";
            this.txtTelefone.Text = "";
            this.txtTelefone2.Text = "";
            this.txtTelefoneBusca.Text = "";
            this.txtUF.Text = "RJ";
            lblAtualizacao.Text = "";
            lblCadastro.Text = "";
            tipoOperacao = "i";
            txtTelefone2.Text = "";
        }

        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if(CamposPreenchidos())
            {
                if ((numeroCadastrado(txtNome.Text)) && (tipoOperacao.Equals("i")))
                {
                    MessageBox.Show("Já existe um cliente cadastrado com este telefone, caso queira adicionar mais pessoas, insira o nome nas observações do cliente", "atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    if (tipoOperacao.Equals("i"))
                    {
                        insereDadosNoBanco();
                    }
                    else
                    {
                        atualizaDadosNoBanco();
                    }
                    
                }

            }
        }

        private void insereDadosNoBanco()
        {
            banco banco = new banco();
            string con = banco.pegarConexao();
            conexao = new OleDbConnection(con);
            string sql = "";
            sql = sql + "    INSERT INTO tblFornecedor  ";
            sql = sql + "    (NOME, TELEFONE, ENDERECO, NUMERO, COMPLEMENTO, BAIRRO, UF, MUNICIPIO, EMAIL, CNPJ, MATERIAL, OBS, CADASTRO, ATUALIZACAO,TELEFONE2)";
            sql = sql + "    VALUES        ('" + txtNome.Text + "', '" + txtTelefone.Text + "', '" + txtEndereco.Text + "', '" + txtNumero.Text + "',";
            sql = sql + "   '" + txtComplemento.Text + "', '" + txtBairro.Text + "', '" + txtUF.Text + "', '" + txtMunicipio.Text + "', '" + txtEmail.Text + "','" + txtCNPJ.Text + "','" + txtMaterial.Text + "', '" + txtObs.Text + "', '" + DateTime.Now + "', '" + DateTime.Now + "', '" + txtTelefone2.Text + "')";

            comando = new OleDbCommand();
            comando.Connection = conexao;
            comando.CommandText = sql;
            try
            {
                conexao.Open();
                comando.ExecuteNonQuery();
                //ds.AcceptChanges();
                MessageBox.Show("Fornecedor cadastrado com sucesso!");
                tipoOperacao = "a";
                txtNomeBusca.Text = txtNome.Text;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao fazer a operação! " + ex.Message.ToString());
            }
            finally
            {
                conexao.Close();
            }
        }
        private void atualizaDadosNoBanco()
        {
            banco banco = new banco();
            string con = banco.pegarConexao();
            conexao = new OleDbConnection(con);
            string sql = "";
            sql = sql + "    UPDATE tblFornecedor SET  ";
            sql = sql + "    (NOME = '" + txtNome.Text + "', TELEFONE = '" + txtTelefone.Text + "', ENDERECO ='" + txtEndereco.Text + "', NUMERO ='" + txtNumero.Text + "', COMPLEMENTO ='" + txtComplemento.Text + "', BAIRRO = '" + txtBairro.Text + "', UF = '" + txtUF.Text + "', MUNICIPIO = '" + txtMunicipio.Text + "', EMAIL = '" + txtEmail.Text + "', CNPJ = '" + txtCNPJ.Text + "', MATERIAL = '" + txtMaterial.Text + "', OBS = '" + txtObs.Text + "', CADASTRO = '" + DateTime.Now + "', ATUALIZACAO = '" + DateTime.Now + "',TELEFONE2= '" + txtTelefone2.Text + "')";
            

            comando = new OleDbCommand();
            comando.Connection = conexao;
            comando.CommandText = sql;
            try
            {
                conexao.Open();
                comando.ExecuteNonQuery();
                //ds.AcceptChanges();
                MessageBox.Show("Fornecedor cadastrado com sucesso!");
                tipoOperacao = "a";
                txtNomeBusca.Text = txtNome.Text;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao fazer a operação! " + ex.Message.ToString());
            }
            finally
            {
                conexao.Close();
            }
        }

        private bool numeroCadastrado(string Nome)
        {
            banco banco = new banco();
            string con = banco.pegarConexao();
            conexao = new OleDbConnection(con);
            string sql = "";
            sql = sql + "    SELECT        *";
            sql = sql + "    FROM            tblFornecedor";
            sql = sql + "    WHERE 1=1 ";
            sql = sql + "    AND (NOME LIKE '" + Nome + "')";

            comando = new OleDbCommand();
            comando.Connection = conexao;
            comando.CommandText = sql;
            try
            {
                conexao.Open();
                comando.CommandType = CommandType.Text;
                OleDbDataReader reader = comando.ExecuteReader();
                if (reader.HasRows)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao fazer a operação! " + ex.Message.ToString());
                return false;
            }
            finally
            {
                conexao.Close();
            }
            
        }
        private bool CamposPreenchidos()
        {
            if (txtTelefone.Text.Replace("-", "").Trim().Equals(""))
            {
                errorProvider1.SetError(txtTelefone, "O Telefone é de preenchimento obrigatório");
                return false;
            }
            else if (txtNome.Text.Trim().Equals(""))
            {
                errorProvider1.SetError(txtNome, "O Nome é de preenchimento obrigatório");
                return false;
            }
            else
            {
                return true;
            }
        }
    }
}
